package org.stars.util.reflect.test1;

import java.sql.Timestamp;
import java.util.Date;



/**
 * <p>Un qualsiasi EntityBean del motore di calcolo dell'economico.</p>
 * <p>Alcuni campi non sono in realtà comuni a tutte le entità ma solo alla maggior parte. 
 * Probabilmente l'unica proprietà presente ovunque è l'intervallo di validità</p>
 * 
 * 
 * @param <K> Il tipo di chiave dell'entità per la sua gestione nelle mappe speciali dell'Economico
 */
public abstract class EbEconomico<K extends ChiaveTipo>
{
	private Long 	id;
	protected static final long serialVersionUID = 1L;

	protected Timestamp oggi = new Timestamp((new Date()).getTime());
	
	protected Long	    rapportoLavoroId;
	
	protected Long		richiestaElaborazioneId;
	protected Long		rigaElaborazioneRichiestaId;
	protected Long		elaborazioneRichiestaId;
	
	protected String	    codicePasso;
	protected TimeSpan  valido;
	



	/* (non-Javadoc)
	 * @see it.insiel.personale.economico.core.components.ComponentBase#toHTML()
	 */
	public String toHTML() 
	{
		return this.toString();
	}

	/* (non-Javadoc)
	 * @see it.insiel.personale.economico.core.Periodo#getValido()
	 */
	public TimeSpan getValido() {
	    return new TimeSpan(this.valido);
	}

	/* (non-Javadoc)
	 * @see it.insiel.personale.economico.core.Periodo#setValido(it.insiel.personale.economico.core.TimeSpan)
	 */
	public void setValido(TimeSpan periodo) {
	    this.valido = periodo;
	}

	/* (non-Javadoc)
	 * @see it.insiel.personale.economico.core.Periodo#getValidoAl()
	 */
	public Timestamp getValidoAl() {
	    return this.valido.getAl();
	}

	/* (non-Javadoc)
	 * @see it.insiel.personale.economico.core.Periodo#getValidoDal()
	 */
	public Timestamp getValidoDal() {
	    return this.valido.getDal();
	}

	/* (non-Javadoc)
	 * @see it.insiel.personale.economico.core.Periodo#setValidoAl(java.sql.Timestamp)
	 */
	public void setValidoAl(Timestamp al) {
	    this.valido.setAl(al);
	}

	/* (non-Javadoc)
	 * @see it.insiel.personale.economico.core.Periodo#setValidoDal(java.sql.Timestamp)
	 */
	public void setValidoDal(Timestamp dal) {
	    this.valido.setDal(dal);
	}

	/**
	 * @return the oggi
	 */
	public Timestamp getOggi() {
		return this.oggi;
	}

	/**
	 * @return the rapportoLavoroId
	 */
	public Long getRapportoLavoroId() {
		return this.rapportoLavoroId;
	}

	/**
	 * @param rapportoLavoroId the rapportoLavoroId to set
	 */
	public void setRapportoLavoroId(Long rapportoLavoroId) {
		this.rapportoLavoroId = rapportoLavoroId;
	}

	/**
	 * @return the codicePasso
	 */
	public String getCodicePasso() {
		return this.codicePasso;
	}

	/**
	 * @param codicePasso the codicePasso to set
	 */
	public void setCodicePasso(String codicePasso) {
		this.codicePasso = codicePasso;
	}
	
	/**
	 * @return the elaborazioneRichiestaId
	 */
	public Long getElaborazioneRichiestaId() {
		return elaborazioneRichiestaId;
	}

	/**
	 * @param elaborazioneRichiestaId the elaborazioneRichiestaId to set
	 */
	public void setElaborazioneRichiestaId(Long elaborazioneRichiestaId) {
		this.elaborazioneRichiestaId = elaborazioneRichiestaId;
	}

	/**
	 * @return the richiestaElaborazioneId
	 */
	public Long getRichiestaElaborazioneId() {
		return richiestaElaborazioneId;
	}

	/**
	 * @param richiestaElaborazioneId the richiestaElaborazioneId to set
	 */
	public void setRichiestaElaborazioneId(Long richiestaElaborazioneId) {
		this.richiestaElaborazioneId = richiestaElaborazioneId;
	}

	/**
	 * @return the rigaElaborazioneRichiestaId
	 */
	public Long getRigaElaborazioneRichiestaId() {
		return rigaElaborazioneRichiestaId;
	}

	/**
	 * @param rigaElaborazioneRichiestaId the rigaElaborazioneRichiestaId to set
	 */
	public void setRigaElaborazioneRichiestaId(Long rigaElaborazioneRichiestaId) {
		this.rigaElaborazioneRichiestaId = rigaElaborazioneRichiestaId;
	}

	/**
	 * Getter dell'attributo id
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * Setter dell'attributo id
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}
	
}
